Different portions of source code can have different levels of access to sensitive system resources. Some portions of source code may be trusted, and receive a high level of access to sensitive system resources. Other portions of source code may be untrusted, and receive only a low level of access to sensitive system resources. The trusted and untrusted portions of source code may need to communicate with each other, and protections put in place to detect or prevent malicious data from flowing from the untrusted code to the trusted code would help to keep the overall source code secure.